Service provider datacenters—such as Internet portal datacenters, cloud datacenters, or legacy datacenters—typically allow customers to install and execute various computing workloads on physical servers operating in a datacenter or distributed across several datacenters. The relationship between the datacenter operator and the customer is typically based on one or more contractual agreements between the customer and the datacenter provider. Those agreements may be known as service level agreements (SLAs), and may define all aspects of the relationship. In particular, a SLA may define technical aspects of the relationship, including the computing services to be provided and the quality of the computing service. Quality factors of the computing service may include performance, reliability, manageability, or other factors. Typical SLAs may not provide quantifiable metrics for quality factors or may merely offer a “best effort” by the datacenter provider to deliver a quality of service.
Datacenter services are typically provided by workloads running on a topology of interconnected compute elements in a datacenter. Those compute elements may be virtual or physical. A service topology typically specifies how to deploy a particular service on a datacenter, and may specify items such as virtual machines, network topology, and the software stack used to deploy the service (e.g., operating system, libraries, support processes, configuration, etc.). For example, a service topology may define the systems and software needed to provide a database, run a web application, or provide a combined service such as a database, web server, and application server. Typical service topologies may specify virtual machine resources without specifying particular physical hardware required to deploy the service. The service topology may be defined in a portable or standardized data format such as the open virtualization format (“OVF”), which has been published by Distributed Management Task Force, Inc.